Software automation systems perform actions on software applications without receiving commands related to those tasks from a user. Traditional, software automation systems rely on a record and replay paradigm. A sequence of actions is recorded in a record phase, and the actions are then automatically performed with respect to a software application in a replay or automation phase.
Typically, software automation systems rely on an understanding of the runtime environment of a software application that is to be automated. For example, a software automation system communicates with the runtime environment of the software application to receive information related to actions within the software application during a record phase. The software automation system then sends instructions to the runtime environment to perform those actions during the replay or automation phase.